package day1_java数据类型变量;

public class Demo04DataType {
    public static void main(String[] args) {
//        // java定义变量: 数据类型 变量名 = 变量值;
//        // ts 定义变量: const / let 变量名:数据类型 = 变量值;
//
//        // 当数据类型不一样的时候, 会发生数据类型转换
//        // 自动类型转换 / 隐式类型转换,
//        // 特点: 1.不需要特殊处理,自动完成
//        //      2.数据范围从小到大  大范围 <-- 小范围
//
//        System.out.println(1024); // 就是个整数默认 int 类型
//        System.out.println(3.1415); // 浮点数 默认是 double 类型
//
//        long num1 = 100;
//        double num2 = 3.1415F;
//        System.out.println(num2);
//
//        /*
//        强制类型转换
//            1.特点: 需要对代码特殊处理, 不能自动完成
//            2.格式 范围小的数据类型 范围小的变量名 = (范围小的类型) 原来范围大的数据;
//            3.注意事项:
//                1.强制类型转换一般不推荐使用, 因为可能会发生 精度丢失 数据溢出
//                2.byte/short/char 三种数据类型均可以做数学运算
//                3.byte/short/char 三种数据类型做数学运算时都会首先被提升为 int 类型 然后再计算
//                4.boolean 在 java 中不能发生数据类型转换
//        */
//        int num3 = (int) 100000000000000L;
//        System.out.println(num3);
//        float num4 = (float) 1.414D;
//        System.out.println(num4);
//
//        char c1 = 'A';
//        System.out.println(c1 + 1); // 66 隐式类型转换 将 字符 'A' 根据 ASCII码 转换成十进制 65
//        char c2 = '中';
//        System.out.println(c2 + 1); // 20014 隐式类型转换 将字符 '中' 根据 unicode 万国码 转成unicode十进制 20013
//
//        byte num5 = 40;
//        byte num6 = 50;
//        // byte res1 = num5 + num6; // 90  byte + byte ===> int + int = int
//        int res1 = num5 + num6;
//
//        short num7 = 60;
//        short res2 = (short) (num6 + num7); // byte + short ===> int + int ==> int
//        System.out.println(res2);
//
//        // System.out.println(true + 1);

    }
}
